SQL/CLR, Using .NET Procedural Code, UDT, TRIGGERS

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Інформаційні технології
Група:
ПІ

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут комп’ютерних наук та інформаційних технологій Кафедра програмного забезпечення ЗВІТ До лабораторної роботи № 5 На тему: «SQL/CLR, Using .NET Procedural Code, UDT, TRIGGERS» З дисципліни : "Бази даних ч.2" Лектор: доцент. каф. ПЗ Павич Н.Я Лабораторна робота № 5. SQL/CLR, Using .NET Procedural Code, UDT, TRIGGERS Завдання: Виконайте всі пункти і запишіть відповіді на поставлені в них питання. Створіть проект на .NET, опишіть функцію (UDF) згідно варіанту, каталогізуйте збірку та функцію у SQL Server, напишіть демонстраційний код T-SQL для використання цієї функції. Створіть користувацький тип даних (UDT) згідно варіанту, каталогізуйте збірку, і приведіть демонстраційний T-SQL код. UDT має містити щонайменше 2 поля різного типу даних (їх можна розмежувати, наприклад знаком #, $ тощо). Створіть тригер та продемонструйте його використання. Завантаження і каталогізації збірки Каталогізація збірки: CREATE ASSEMBLY METRICCONVERTER FROM 'c:\types\metricconverter.dll' GO Каталогізація функції: CREATE FUNCTION KilometersToMiles (@a float) returns float external name MetricConverter.[DM.EssentialYukon.MetricConverter].KilometersToMiles GO Спробуємо видалити оригінальний файл збірки (MetricConverter.dll), який використовувався при запуску CREATE ASSEMBLY. Збірка не створюється: Msg 6501, Level 16, State 7, Line 2 CREATE ASSEMBLY failed because it could not open the physical file "c:\types\metricconverter.dll": 2(Не удается найти указанный файл.). Спробуємо видалити збірку MetricConverter. Не вдалося – потрібно спершу видалити всі залежності: Msg 6590, Level 16, State 1, Line 5 DROP ASSEMBLY failed because 'METRICCONVERTER' is referenced by object 'KilometersToMiles'. Залежності збірки Каталогізовуємо збірку: CREATE ASSEMBLY TempFunctions FROM 'c:\types\tempfunctions.dll' GO Виконуємо наступний Transact-SQL код для вивчення SQL Server представлень метаданих: SELECT * FROM sys.assemblies GO SELECT * FROM sys.assembly_files GO   Тепер зроблю збірку «видимою»: CREATE ASSEMBLY MetricConverter from 'c:\types\MetricConverter.dll' GO ALTER ASSEMBLY MetricConverter ADD FILE FROM 'c:\types\MetricConverter.pdb' ALTER ASSEMBLY MetricConverter WITH VISIBILITY = ON GO Результат: Command(s) completed successfully. Пробую передати значення null в каталогізовану функцію: use demo1 go CREATE ASSEMBLY MetricConverter FROM 'C:\types\metricconverter.dll' go create function KilogramsToPounds (@a float) returns float external name MetricConverter.[DM.EssentialYukon.MetricConverter].KilogramsToPounds go declare @x float declare @y float set @x = null set @y = dbo.KilogramsToPounds(@x) print 'KG' if @y is null print 'NULL' print @y go Результат: Msg 6569, Level 16, State 1, Line 6 'KilogramsToPounds' failed because parameter 1 is not allowed to be null. Створюю таблицю: create table readings( ReadingDate datetime not null, City varchar(20) not null, HiTemp_Far real, HiTemp_Cen as dbo.FahrenheitToCentigrade(hitemp_far) PERSISTED ) Результат: Msg 4936, Level 16, State 1, Line 22 Computed column 'HiTemp_Cen' in table 'readings' cannot be persisted because the column is non-deterministic. Додаю перед оголошенням функції рядок [SqlFunction(DataAccess=DataAccessKind.None, IsDeterministic=true, IsPrecise=true)] Тепер запит виконується успішно. Додаю дані в таблицю: use Demo1 go INSERT readings VALUES('7/4/03', 'Boston', 75) go INSERT readings VALUES('7/5/03', 'Boston', 90)  Тепер роблю так щоб функція повертала значення null при переданні null значення: create function FahrenheitToCentigrade (@a float) returns float with RETURNS NULL ON NULL INPUT external name MetricConverter.[DM.EssentialYukon.MetricConverter].FahrenheitToCentigrade declare @x float declare @y float set @x = NULL set @y = dbo.FahrenheitToCentigrade(@x) if @y is null print 'NULL' print @y go Результат: NULL Змінюю типи вхідних і вихідних даних: [SqlFunction(DataAccess = DataAcce...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини